In the field of Component-Based Software Engineering (CBSE), the term ‘system development’ implies to assemble existing software components rather than to create a new system from scratch. Various efforts have been made to develop component models such as EJB, DCOM/COM+ and CCM for facilitating the reuse of existing components, and to develop an Enterprise Application Integration (EAI) technique in order to support an infrastructure for the integration of heterogeneous legacy applications.
As a component model of a server side, EJB was developed with the intention to reuse existing EJB components on various platforms without a code modification and a re-compiling process.
However, it is very difficult to assemble various EJB components provided by third-parties using a plug-and-play style for the following reasons. Firstly, since a component model has a wide variety of vendor specific methods for implementing an infrastructure or middleware, it is difficult to assemble the components generated based on different infrastructures or middleware with the plug-and-play style. Secondly, since a direct invocation of a method is required for interactions between EJB components provided by third parties, the method of a component should be invoked at a client level where the component is reused.
In order to solve the first problem stated above in assembling the EJB components, the Enterprise Application Integration (EAI) technique has been suggested. The EAI technique intends to integrate legacy systems into an enterprise system. However, since the system integration techniques developed by various vendors are different from each other, systems cannot be integrated unless the integration technique of a single vendor is employed. In other words, the component models and enterprise integration techniques suggested so far for the purpose of allowing the various components to be assembled and reused regardless of implementations of the components, have a critical defect in that they are dependent upon the vendors that develop the infrastructure and middleware for supporting the models. Unless EJB vendors keep standards of EJB specifications, this problem cannot be solved. In addition, the plug-and-play assembly of the EJB components, and the flexible reconfiguration of a system model built by the assembly process, are very difficult since methods have to be directly invoked for the interactions between the EJB components. In order to solve the second problem, a component assembly method capable of visually assembling and flexibly reconstructing the EJB components.
There has been suggested an architecture-based assembly process where the existing EJB components are assembled to form a high-level architecture. A well-defined architecture for a target system indicates how the system is organized and functions at a high-level. Services that will be provided by the assembled system can be abstractly expressed. Further, the well-defined architecture can be used to analyze, refine, test and add functions of the software system to be developed. Accordingly, if the EJB components are assembled based on the architecture, the EJB components can be exactly connected and operated through the modeling, analyzing and refining process of the architecture. In addition, the architecture can be used as a large-grained component which performs larger functions, and be also used as a unit application system with a client program.
An architecture based approach of generating a well-defined system by analyzing a target system at a higher level has not been much used for building a software system through assembling the existing EJB components in large-scale business. Though previous research work described in D. S. Rosenblum and R. Natarajan, “Supporting architectural concerns in component interoperability standards,” IEEE Processings: Software, Vol 147, No. 6, pp 215 to 223, has attempted to create the architecture based software, the ‘ARABICA’ developed therein as an architecture modeling tool capable of assembling JavaBeans components has a limit in that the JavaBeans component model is not a server-side model but a client side model for reuse of Graphic User Interface (GUI) components.
The assembly of GUI components is less useful than the assembly of server-side components used in business domains. Further, the editing process supported by the ARABICA cannot provide users with the plug-and-play assembly for the server-side EJB components.
Further, since the ARABICA does not generate implementation code, though it builds the model of a system architecture composed of JavaBeans components, the system architecture cannot be reused as a new component.
As a result, a plug-and-play assembly technique of server-side EJB components frequently used in the business environment is required. The generation of composite EJB is also required for reuse of the assembled EJB components.